home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / imghdr.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  4KB  |  166 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __all__ = [
  5.     'what']
  6.  
  7. def what(file, h = None):
  8.     if h is None:
  9.         if type(file) == type(''):
  10.             f = open(file, 'rb')
  11.             h = f.read(32)
  12.         else:
  13.             location = file.tell()
  14.             h = file.read(32)
  15.             file.seek(location)
  16.             f = None
  17.     else:
  18.         f = None
  19.     
  20.     try:
  21.         for tf in tests:
  22.             res = tf(h, f)
  23.             if res:
  24.                 return res
  25.                 continue
  26.     finally:
  27.         if f:
  28.             f.close()
  29.         
  30.  
  31.  
  32. tests = []
  33.  
  34. def test_rgb(h, f):
  35.     if h[:2] == '\x01\xda':
  36.         return 'rgb'
  37.     
  38.  
  39. tests.append(test_rgb)
  40.  
  41. def test_gif(h, f):
  42.     if h[:6] in ('GIF87a', 'GIF89a'):
  43.         return 'gif'
  44.     
  45.  
  46. tests.append(test_gif)
  47.  
  48. def test_pbm(h, f):
  49.     if len(h) >= 3 and h[0] == 'P' and h[1] in '14' and h[2] in ' \t\n\r':
  50.         return 'pbm'
  51.     
  52.  
  53. tests.append(test_pbm)
  54.  
  55. def test_pgm(h, f):
  56.     if len(h) >= 3 and h[0] == 'P' and h[1] in '25' and h[2] in ' \t\n\r':
  57.         return 'pgm'
  58.     
  59.  
  60. tests.append(test_pgm)
  61.  
  62. def test_ppm(h, f):
  63.     if len(h) >= 3 and h[0] == 'P' and h[1] in '36' and h[2] in ' \t\n\r':
  64.         return 'ppm'
  65.     
  66.  
  67. tests.append(test_ppm)
  68.  
  69. def test_tiff(h, f):
  70.     if h[:2] in ('MM', 'II'):
  71.         return 'tiff'
  72.     
  73.  
  74. tests.append(test_tiff)
  75.  
  76. def test_rast(h, f):
  77.     if h[:4] == 'Y\xa6j\x95':
  78.         return 'rast'
  79.     
  80.  
  81. tests.append(test_rast)
  82.  
  83. def test_xbm(h, f):
  84.     s = '#define '
  85.     if h[:len(s)] == s:
  86.         return 'xbm'
  87.     
  88.  
  89. tests.append(test_xbm)
  90.  
  91. def test_jpeg(h, f):
  92.     if h[6:10] == 'JFIF':
  93.         return 'jpeg'
  94.     
  95.  
  96. tests.append(test_jpeg)
  97.  
  98. def test_exif(h, f):
  99.     if h[6:10] == 'Exif':
  100.         return 'jpeg'
  101.     
  102.  
  103. tests.append(test_exif)
  104.  
  105. def test_bmp(h, f):
  106.     if h[:2] == 'BM':
  107.         return 'bmp'
  108.     
  109.  
  110. tests.append(test_bmp)
  111.  
  112. def test_png(h, f):
  113.     if h[:8] == '\x89PNG\r\n\x1a\n':
  114.         return 'png'
  115.     
  116.  
  117. tests.append(test_png)
  118.  
  119. def test():
  120.     import sys as sys
  121.     recursive = 0
  122.     if sys.argv[1:] and sys.argv[1] == '-r':
  123.         del sys.argv[1:2]
  124.         recursive = 1
  125.     
  126.     
  127.     try:
  128.         if sys.argv[1:]:
  129.             testall(sys.argv[1:], recursive, 1)
  130.         else:
  131.             testall([
  132.                 '.'], recursive, 1)
  133.     except KeyboardInterrupt:
  134.         sys.stderr.write('\n[Interrupted]\n')
  135.         sys.exit(1)
  136.  
  137.  
  138.  
  139. def testall(list, recursive, toplevel):
  140.     import sys
  141.     import os as os
  142.     for filename in list:
  143.         if os.path.isdir(filename):
  144.             print filename + '/:',
  145.             if recursive or toplevel:
  146.                 print 'recursing down:'
  147.                 import glob as glob
  148.                 names = glob.glob(os.path.join(filename, '*'))
  149.                 testall(names, recursive, 0)
  150.             else:
  151.                 print '*** directory (use -r) ***'
  152.         toplevel
  153.         print filename + ':',
  154.         sys.stdout.flush()
  155.         
  156.         try:
  157.             print what(filename)
  158.         continue
  159.         except IOError:
  160.             print '*** not found ***'
  161.             continue
  162.         
  163.  
  164.     
  165.  
  166.